// types.ts
import { ReactNode } from 'react';

// 物料项类型
export interface WidgetMaterial {
  id: string; // 物料唯一标识
  type: string; // 物料类型（如 'chart'、'table'）
  name: string; // 物料名称
  icon?: ReactNode; // 物料图标
  initialWidth: number; // 初始宽度
  initialHeight: number; // 初始高度
}

// 网格内组件实例状态
export interface GridWidget extends WidgetMaterial {
  gridId: string; // 网格内唯一标识（区分同一物料的多个实例）
  x: number; // 位置 X 坐标
  y: number; // 位置 Y 坐标
  width: number; // 宽度
  height: number; // 高度
  rotation: number; // 旋转角度（度）
  zIndex: number; // 层级（可选）
}

// 网格区域配置
export interface GridConfig {
  cellSize: number; // 网格单元格大小（用于吸附）
  rows: number; // 网格行数
  cols: number; // 网格列数
}
